home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1997-04-30 | 11.8 KB | [TEXT/CWIE] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Wed Apr 30 15:03:19 1997, modified Wed Apr 30 15:03:19 1997, creator 'CWIE', type ASCII, 11297 bytes "htparse.c" , at 0x2ca1 456 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [CWIE] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 68 74 70 61 72 73 | 65 2e 63 00 00 00 00 00 |..htpars|e.c.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 2c 21 00 | 00 01 c8 af 8d 47 f7 af |.....,!.|.....G..|
|00000060| 8d 47 f7 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.G......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 33 2d 00 00 |........|....3-..|
|00000080| 2f 2f 20 3e 3e 3e 20 a9 | 20 31 39 39 36 2d 31 39 |// >>> .| 1996-19|
|00000090| 39 37 20 4d 69 63 72 6f | 73 6f 66 74 20 43 6f 72 |97 Micro|soft Cor|
|000000a0| 70 6f 72 61 74 69 6f 6e | 2e 20 20 41 6c 6c 20 72 |poration|. All r|
|000000b0| 69 67 68 74 73 20 72 65 | 73 65 72 76 65 64 2e 20 |ights re|served. |
|000000c0| 3c 3c 3c 0d 2f 2a 0d 20 | 20 20 54 68 69 73 20 66 |<<<./*. | This f|
|000000d0| 69 6c 65 20 77 61 73 20 | 64 65 72 69 76 65 64 20 |ile was |derived |
|000000e0| 66 72 6f 6d 20 74 68 65 | 20 6c 69 62 77 77 77 20 |from the| libwww |
|000000f0| 63 6f 64 65 2c 20 76 65 | 72 73 69 6f 6e 20 32 2e |code, ve|rsion 2.|
|00000100| 31 35 2c 20 66 72 6f 6d | 20 43 45 52 4e 2e 0d 20 |15, from| CERN.. |
|00000110| 20 20 41 20 6e 75 6d 62 | 65 72 20 6f 66 20 6d 6f | A numb|er of mo|
|00000120| 64 69 66 69 63 61 74 69 | 6f 6e 73 20 68 61 76 65 |dificati|ons have|
|00000130| 20 62 65 65 6e 20 6d 61 | 64 65 20 62 79 20 53 70 | been ma|de by Sp|
|00000140| 79 67 6c 61 73 73 2e 0d | 0d 20 20 20 65 72 69 63 |yglass..|. eric|
|00000150| 40 73 70 79 67 6c 61 73 | 73 2e 63 6f 6d 0d 20 2a |@spyglas|s.com. *|
|00000160| 2f 0d 2f 2a 20 20 20 20 | 20 20 50 61 72 73 65 20 |/./* | Parse |
|00000170| 48 79 70 65 72 54 65 78 | 74 20 44 6f 63 75 6d 65 |HyperTex|t Docume|
|00000180| 6e 74 20 41 64 64 72 65 | 73 73 20 20 20 20 20 20 |nt Addre|ss |
|00000190| 20 20 48 54 50 61 72 73 | 65 2e 63 0d 20 20 20 2a | HTPars|e.c. *|
|000001a0| 2a 20 20 20 20 20 20 20 | 3d 3d 3d 3d 3d 3d 3d 3d |* |========|
|000001b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000001c0| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 20 2a 2f 0d 23 69 6e |========|. */.#in|
|000001d0| 63 6c 75 64 65 20 22 61 | 6c 6c 2e 68 22 0d 0d 2f |clude "a|ll.h"../|
|000001e0| 2f 6a 6a 6f 20 0d 23 69 | 66 64 65 66 20 5f 5f 63 |/jjo .#i|fdef __c|
|000001f0| 70 6c 75 73 70 6c 75 73 | 0d 65 78 74 65 72 6e 20 |plusplus|.extern |
|00000200| 22 43 22 20 7b 0d 23 65 | 6e 64 69 66 0d 0d 63 68 |"C" {.#e|ndif..ch|
|00000210| 61 72 20 2a 78 5f 45 78 | 70 61 6e 64 52 65 6c 61 |ar *x_Ex|pandRela|
|00000220| 74 69 76 65 41 6e 63 68 | 6f 72 28 63 6f 6e 73 74 |tiveAnch|or(const|
|00000230| 20 63 68 61 72 20 2a 72 | 65 6c 2c 20 63 6f 6e 73 | char *r|el, cons|
|00000240| 74 20 63 68 61 72 20 2a | 62 61 73 65 29 3b 0d 0d |t char *|base);..|
|00000250| 23 69 66 64 65 66 20 5f | 5f 63 70 6c 75 73 70 6c |#ifdef _|_cpluspl|
|00000260| 75 73 0d 7d 0d 23 65 6e | 64 69 66 0d 0d 23 64 65 |us.}.#en|dif..#de|
|00000270| 66 69 6e 65 20 48 45 58 | 5f 45 53 43 41 50 45 20 |fine HEX|_ESCAPE |
|00000280| 27 25 27 0d 0d 73 74 72 | 75 63 74 20 73 74 72 75 |'%'..str|uct stru|
|00000290| 63 74 5f 70 61 72 74 73 | 0d 7b 0d 09 63 68 61 72 |ct_parts|.{..char|
|000002a0| 20 2a 61 63 63 65 73 73 | 3b 0d 09 63 68 61 72 20 | *access|;..char |
|000002b0| 2a 68 6f 73 74 3b 0d 09 | 63 68 61 72 20 2a 61 62 |*host;..|char *ab|
|000002c0| 73 6f 6c 75 74 65 3b 0d | 09 63 68 61 72 20 2a 72 |solute;.|.char *r|
|000002d0| 65 6c 61 74 69 76 65 3b | 0d 2f 2a 20 20 63 68 61 |elative;|./* cha|
|000002e0| 72 20 2a 20 73 65 61 72 | 63 68 3b 20 20 20 20 20 |r * sear|ch; |
|000002f0| 20 6e 6f 20 2d 20 74 72 | 65 61 74 65 64 20 61 73 | no - tr|eated as|
|00000300| 20 70 61 72 74 20 6f 66 | 20 70 61 74 68 20 2a 2f | part of| path */|
|00000310| 0d 09 63 68 61 72 20 2a | 61 6e 63 68 6f 72 3b 0d |..char *|anchor;.|
|00000320| 7d 3b 0d 0d 0d 2f 2a 20 | 20 53 74 72 69 70 20 77 |};.../* | Strip w|
|00000330| 68 69 74 65 20 73 70 61 | 63 65 20 6f 66 66 20 61 |hite spa|ce off a|
|00000340| 20 73 74 72 69 6e 67 0d | 20 20 20 2a 2a 20 20 20 | string.| ** |
|00000350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 20 |--------|------. |
|00000370| 20 20 2a 2a 0d 20 20 20 | 2a 2a 20 4f 6e 20 65 78 | **. |** On ex|
|00000380| 69 74 2c 0d 20 20 20 2a | 2a 20 20 20 52 65 74 75 |it,. *|* Retu|
|00000390| 72 6e 20 76 61 6c 75 65 | 20 70 6f 69 6e 74 73 20 |rn value| points |
|000003a0| 74 6f 20 66 69 72 73 74 | 20 6e 6f 6e 2d 77 68 69 |to first| non-whi|
|000003b0| 74 65 20 63 68 61 72 61 | 63 74 65 72 2c 20 6f 72 |te chara|cter, or|
|000003c0| 20 74 6f 20 30 20 69 66 | 20 6e 6f 6e 65 2e 0d 20 | to 0 if| none.. |
|000003d0| 20 20 2a 2a 20 20 20 41 | 6c 6c 20 74 72 61 69 6c | ** A|ll trail|
|000003e0| 69 6e 67 20 77 68 69 74 | 65 20 73 70 61 63 65 20 |ing whit|e space |
|000003f0| 69 73 20 4f 56 45 52 57 | 52 49 54 54 45 4e 20 77 |is OVERW|RITTEN w|
|00000400| 69 74 68 20 7a 65 72 6f | 2e 0d 20 2a 2f 0d 0d 50 |ith zero|.. */..P|
|00000410| 55 42 4c 49 43 20 63 68 | 61 72 20 2a 48 54 53 74 |UBLIC ch|ar *HTSt|
|00000420| 72 69 70 28 63 68 61 72 | 20 2a 73 29 0d 7b 0d 23 |rip(char| *s).{.#|
|00000430| 64 65 66 69 6e 65 20 53 | 50 41 43 45 28 63 29 20 |define S|PACE(c) |
|00000440| 28 28 63 3d 3d 27 20 27 | 29 7c 7c 28 63 3d 3d 27 |((c==' '|)||(c=='|
|00000450| 5c 74 27 29 7c 7c 28 63 | 3d 3d 27 5c 6e 27 29 7c |\t')||(c|=='\n')||
|00000460| 7c 28 63 3d 3d 27 5c 72 | 27 29 29 0d 09 63 68 61 ||(c=='\r|'))..cha|
|00000470| 72 20 2a 70 20 3d 20 73 | 3b 0d 09 69 66 20 28 21 |r *p = s|;..if (!|
|00000480| 73 29 0d 09 09 72 65 74 | 75 72 6e 20 4e 55 4c 4c |s)...ret|urn NULL|
|00000490| 3b 09 09 09 2f 2a 20 44 | 6f 65 73 6e 27 74 20 64 |;.../* D|oesn't d|
|000004a0| 75 6d 70 20 63 6f 72 65 | 20 69 66 20 4e 55 4c 4c |ump core| if NULL|
|000004b0| 20 2a 2f 0d 09 66 6f 72 | 20 28 70 20 3d 20 73 3b | */..for| (p = s;|
|000004c0| 20 2a 70 3b 20 70 2b 2b | 29 20 3b 09 09 2f 2a 20 | *p; p++|) ;../* |
|000004d0| 46 69 6e 64 20 65 6e 64 | 20 6f 66 20 73 74 72 69 |Find end| of stri|
|000004e0| 6e 67 20 2a 2f 0d 09 66 | 6f 72 20 28 70 2d 2d 3b |ng */..f|or (p--;|
|000004f0| 20 70 20 3e 3d 20 73 3b | 20 70 2d 2d 29 0d 09 7b | p >= s;| p--)..{|
|00000500| 0d 09 09 69 66 20 28 53 | 50 41 43 45 28 2a 70 29 |...if (S|PACE(*p)|
|00000510| 29 0d 09 09 09 2a 70 20 | 3d 20 30 3b 09 09 09 09 |)....*p |= 0;....|
|00000520| 2f 2a 20 5a 61 70 20 74 | 72 61 69 6c 69 6e 67 20 |/* Zap t|railing |
|00000530| 62 6c 61 6e 6b 73 20 2a | 2f 0d 09 09 65 6c 73 65 |blanks *|/...else|
|00000540| 0d 09 09 09 62 72 65 61 | 6b 3b 0d 09 7d 0d 09 77 |....brea|k;..}..w|
|00000550| 68 69 6c 65 20 28 53 50 | 41 43 45 28 2a 73 29 29 |hile (SP|ACE(*s))|
|00000560| 0d 09 09 73 2b 2b 3b 09 | 09 09 09 09 2f 2a 20 53 |...s++;.|..../* S|
|00000570| 74 72 69 70 20 6c 65 61 | 64 69 6e 67 20 62 6c 61 |trip lea|ding bla|
|00000580| 6e 6b 73 20 2a 2f 0d 09 | 72 65 74 75 72 6e 20 73 |nks */..|return s|
|00000590| 3b 0d 7d 0d 0d 0d 2f 2a | 20 20 53 63 61 6e 20 61 |;.}.../*| Scan a|
|000005a0| 20 66 69 6c 65 6e 61 6d | 65 20 66 6f 72 20 69 74 | filenam|e for it|
|000005b0| 73 20 63 6f 6e 73 69 74 | 75 65 6e 74 73 0d 20 20 |s consit|uents. |
|000005c0| 20 2a 2a 20 20 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ** --|--------|
|000005d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 20 20 20 2a 2a 0d |--------|-. **.|
|000005f0| 20 20 20 2a 2a 20 4f 6e | 20 65 6e 74 72 79 2c 0d | ** On| entry,.|
|00000600| 20 20 20 2a 2a 20 20 20 | 6e 61 6d 65 20 20 20 20 | ** |name |
|00000610| 70 6f 69 6e 74 73 20 74 | 6f 20 61 20 64 6f 63 75 |points t|o a docu|
|00000620| 6d 65 6e 74 20 6e 61 6d | 65 20 77 68 69 63 68 20 |ment nam|e which |
|00000630| 6d 61 79 20 62 65 20 69 | 6e 63 6f 6d 70 6c 65 74 |may be i|ncomplet|
|00000640| 65 2e 0d 20 20 20 2a 2a | 20 4f 6e 20 65 78 69 74 |e.. **| On exit|
|00000650| 2c 0d 20 20 20 2a 2a 20 | 20 20 20 20 20 61 62 73 |,. ** | abs|
|00000660| 6f 6c 75 74 65 20 6f 72 | 20 72 65 6c 61 74 69 76 |olute or| relativ|
|00000670| 65 20 6d 61 79 20 62 65 | 20 6e 6f 6e 7a 65 72 6f |e may be| nonzero|
|00000680| 20 28 62 75 74 20 6e 6f | 74 20 62 6f 74 68 29 2e | (but no|t both).|
|00000690| 0d 20 20 20 2a 2a 20 20 | 20 68 6f 73 74 2c 20 61 |. ** | host, a|
|000006a0| 6e 63 68 6f 72 20 61 6e | 64 20 61 63 63 65 73 73 |nchor an|d access|
|000006b0| 20 6d 61 79 20 62 65 20 | 6e 6f 6e 7a 65 72 6f 20 | may be |nonzero |
|000006c0| 69 66 20 74 68 65 79 20 | 77 65 72 65 20 73 70 65 |if they |were spe|
|000006d0| 63 69 66 69 65 64 2e 0d | 20 20 20 2a 2a 20 20 20 |cified..| ** |
|000006e0| 41 6e 79 20 77 68 69 63 | 68 20 61 72 65 20 6e 6f |Any whic|h are no|
|000006f0| 6e 7a 65 72 6f 20 70 6f | 69 6e 74 20 74 6f 20 7a |nzero po|int to z|
|00000700| 65 72 6f 20 74 65 72 6d | 69 6e 61 74 65 64 20 73 |ero term|inated s|
|00000710| 74 72 69 6e 67 73 2e 0d | 20 2a 2f 0d 50 52 49 56 |trings..| */.PRIV|
|00000720| 41 54 45 20 76 6f 69 64 | 20 73 63 61 6e 28 63 68 |ATE void| scan(ch|
|00000730| 61 72 20 2a 6e 61 6d 65 | 2c 20 73 74 72 75 63 74 |ar *name|, struct|
|00000740| 20 73 74 72 75 63 74 5f | 70 61 72 74 73 20 2a 70 | struct_|parts *p|
|00000750| 61 72 74 73 29 0d 7b 0d | 09 63 68 61 72 20 2a 61 |arts).{.|.char *a|
|00000760| 66 74 65 72 5f 61 63 63 | 65 73 73 3b 0d 09 63 68 |fter_acc|ess;..ch|
|00000770| 61 72 20 2a 70 3b 0d 09 | 69 6e 74 20 6c 65 6e 67 |ar *p;..|int leng|
|00000780| 74 68 20 3d 20 73 74 72 | 6c 65 6e 28 6e 61 6d 65 |th = str|len(name|
|00000790| 29 3b 0d 0d 09 70 61 72 | 74 73 2d 3e 61 63 63 65 |);...par|ts->acce|
|000007a0| 73 73 20 3d 20 30 3b 0d | 09 70 61 72 74 73 2d 3e |ss = 0;.|.parts->|
|000007b0| 68 6f 73 74 20 3d 20 30 | 3b 0d 09 70 61 72 74 73 |host = 0|;..parts|
|000007c0| 2d 3e 61 62 73 6f 6c 75 | 74 65 20 3d 20 30 3b 0d |->absolu|te = 0;.|
|000007d0| 09 70 61 72 74 73 2d 3e | 72 65 6c 61 74 69 76 65 |.parts->|relative|
|000007e0| 20 3d 20 30 3b 0d 09 70 | 61 72 74 73 2d 3e 61 6e | = 0;..p|arts->an|
|000007f0| 63 68 6f 72 20 3d 20 30 | 3b 0d 0d 09 61 66 74 65 |chor = 0|;...afte|
|00000800| 72 5f 61 63 63 65 73 73 | 20 3d 20 6e 61 6d 65 3b |r_access| = name;|
|00000810| 0d 09 66 6f 72 20 28 70 | 20 3d 20 6e 61 6d 65 3b |..for (p| = name;|
|00000820| 20 2a 70 3b 20 70 2b 2b | 29 0d 09 7b 0d 09 09 69 | *p; p++|)..{...i|
|00000830| 66 20 28 2a 70 20 3d 3d | 20 27 3a 27 29 0d 09 09 |f (*p ==| ':')...|
|00000840| 7b 0d 09 09 09 2a 70 20 | 3d 20 30 3b 0d 09 09 09 |{....*p |= 0;....|
|00000850| 70 61 72 74 73 2d 3e 61 | 63 63 65 73 73 20 3d 20 |parts->a|ccess = |
|00000860| 6e 61 6d 65 3b 09 2f 2a | 20 41 63 63 65 73 73 20 |name;./*| Access |
|00000870| 6e 61 6d 65 20 68 61 73 | 20 62 65 65 6e 20 73 70 |name has| been sp|
|00000880| 65 63 69 66 69 65 64 20 | 2a 2f 0d 09 09 09 61 66 |ecified |*/....af|
|00000890| 74 65 72 5f 61 63 63 65 | 73 73 20 3d 20 70 20 2b |ter_acce|ss = p +|
|000008a0| 20 31 3b 0d 09 09 7d 0d | 09 09 69 66 20 28 2a 70 | 1;...}.|..if (*p|
|000008b0| 20 3d 3d 20 27 2f 27 29 | 0d 09 09 09 62 72 65 61 | == '/')|....brea|
|000008c0| 6b 3b 0d 09 09 69 66 20 | 28 2a 70 20 3d 3d 20 27 |k;...if |(*p == '|
|000008d0| 23 27 29 0d 09 09 09 62 | 72 65 61 6b 3b 0d 09 7d |#')....b|reak;..}|
|000008e0| 0d 0d 09 69 66 20 28 6c | 65 6e 67 74 68 20 3e 20 |...if (l|ength > |
|000008f0| 30 29 0d 09 7b 0d 09 09 | 66 6f 72 20 28 70 20 3d |0)..{...|for (p =|
|00000900| 20 6e 61 6d 65 20 2b 20 | 6c 65 6e 67 74 68 20 2d | name + |length -|
|00000910| 20 31 3b 20 70 20 3e 3d | 20 6e 61 6d 65 3b 20 70 | 1; p >=| name; p|
|00000920| 2d 2d 29 0d 09 09 7b 0d | 09 09 09 69 66 20 28 2a |--)...{.|...if (*|
|00000930| 70 20 3d 3d 20 27 23 27 | 29 0d 09 09 09 7b 0d 09 |p == '#'|)....{..|
|00000940| 09 09 09 70 61 72 74 73 | 2d 3e 61 6e 63 68 6f 72 |...parts|->anchor|
|00000950| 20 3d 20 70 20 2b 20 31 | 3b 0d 09 09 09 09 2a 70 | = p + 1|;.....*p|
|00000960| 20 3d 20 30 3b 09 09 09 | 09 2f 2a 20 74 65 72 6d | = 0;...|./* term|
|00000970| 69 6e 61 74 65 20 74 68 | 65 20 72 65 73 74 20 2a |inate th|e rest *|
|00000980| 2f 0d 09 09 09 7d 0d 09 | 09 7d 0d 09 7d 0d 0d 09 |/....}..|.}..}...|
|00000990| 70 20 3d 20 61 66 74 65 | 72 5f 61 63 63 65 73 73 |p = afte|r_access|
|000009a0| 3b 0d 09 69 66 20 28 2a | 70 20 3d 3d 20 27 2f 27 |;..if (*|p == '/'|
|000009b0| 29 0d 09 7b 0d 09 09 69 | 66 20 28 70 5b 31 5d 20 |)..{...i|f (p[1] |
|000009c0| 3d 3d 20 27 2f 27 29 0d | 09 09 7b 0d 09 09 09 70 |== '/').|..{....p|
|000009d0| 61 72 74 73 2d 3e 68 6f | 73 74 20 3d 20 70 20 2b |arts->ho|st = p +|
|000009e0| 20 32 3b 09 2f 2a 20 68 | 6f 73 74 20 68 61 73 20 | 2;./* h|ost has |
|000009f0| 62 65 65 6e 20 73 70 65 | 63 69 66 69 65 64 20 20 |been spe|cified |
|00000a00| 2a 2f 0d 09 09 09 2a 70 | 20 3d 20 30 3b 09 09 09 |*/....*p| = 0;...|
|00000a10| 09 09 2f 2a 20 54 65 72 | 6d 69 6e 61 74 65 20 61 |../* Ter|minate a|
|00000a20| 63 63 65 73 73 20 20 20 | 20 20 20 20 20 20 2a 2f |ccess | */|
|00000a30| 0d 09 09 09 70 20 3d 20 | 73 74 72 63 68 72 28 70 |....p = |strchr(p|
|00000a40| 61 72 74 73 2d 3e 68 6f | 73 74 2c 20 27 2f 27 29 |arts->ho|st, '/')|
|00000a50| 3b 09 2f 2a 20 6c 6f 6f | 6b 20 66 6f 72 20 65 6e |;./* loo|k for en|
|00000a60| 64 20 6f 66 20 68 6f 73 | 74 20 6e 61 6d 65 20 69 |d of hos|t name i|
|00000a70| 66 20 61 6e 79 20 2a 2f | 0d 09 09 09 0d 09 09 09 |f any */|........|
|00000a80| 2f 2f 20 69 66 20 74 68 | 69 73 20 69 73 20 61 20 |// if th|is is a |
|00000a90| 22 66 69 6c 65 22 20 61 | 63 63 65 73 73 2c 20 77 |"file" a|ccess, w|
|00000aa0| 68 61 74 20 61 70 70 65 | 61 72 73 20 74 6f 20 62 |hat appe|ars to b|
|00000ab0| 65 20 61 20 68 6f 73 74 | 20 6d 61 79 20 72 65 61 |e a host| may rea|
|00000ac0| 6c 6c 79 20 62 65 20 61 | 20 76 6f 6c 75 6d 65 0d |lly be a| volume.|
|00000ad0| 09 09 09 0d 09 09 09 69 | 66 20 28 21 73 74 72 63 |.......i|f (!strc|
|00000ae0| 6d 70 28 70 61 72 74 73 | 2d 3e 61 63 63 65 73 73 |mp(parts|->access|
|00000af0| 2c 20 22 66 69 6c 65 22 | 29 29 0d 09 09 09 7b 0d |, "file"|))....{.|
|00000b00| 09 09 09 09 63 68 61 72 | 09 09 09 09 76 42 75 66 |....char|....vBuf|
|00000b10| 66 65 72 5b 32 35 36 5d | 3b 0d 09 09 09 09 0d 09 |fer[256]|;.......|
|00000b20| 09 09 09 2f 2f 20 6d 61 | 6b 65 20 61 20 70 72 6f |...// ma|ke a pro|
|00000b30| 70 65 72 20 6d 61 63 20 | 73 74 79 6c 65 20 76 65 |per mac |style ve|
|00000b40| 72 73 69 6f 6e 20 6f 66 | 20 74 68 65 20 22 68 6f |rsion of| the "ho|
|00000b50| 73 74 22 20 6e 61 6d 65 | 0d 09 09 09 09 7b 0d 09 |st" name|.....{..|
|00000b60| 09 09 09 09 73 74 72 63 | 70 79 28 76 42 75 66 66 |....strc|py(vBuff|
|00000b70| 65 72 2c 20 70 61 72 74 | 73 2d 3e 68 6f 73 74 29 |er, part|s->host)|
|00000b80| 3b 0d 09 09 09 09 09 63 | 32 70 73 74 72 28 76 42 |;......c|2pstr(vB|
|00000b90| 75 66 66 65 72 29 3b 0d | 09 09 09 09 09 76 42 75 |uffer);.|.....vBu|
|00000ba0| 66 66 65 72 5b 30 5d 20 | 3d 20 31 20 2b 20 70 20 |ffer[0] |= 1 + p |
|00000bb0| 2d 20 70 61 72 74 73 2d | 3e 68 6f 73 74 3b 0d 09 |- parts-|>host;..|
|00000bc0| 09 09 09 09 76 42 75 66 | 66 65 72 5b 76 42 75 66 |....vBuf|fer[vBuf|
|00000bd0| 66 65 72 5b 30 5d 5d 20 | 3d 20 27 3a 27 3b 0d 09 |fer[0]] |= ':';..|
|00000be0| 09 09 09 7d 0d 09 09 09 | 09 0d 09 09 09 09 2f 2f |...}....|......//|
|00000bf0| 20 63 68 65 63 6b 20 74 | 6f 20 73 65 65 20 69 66 | check t|o see if|
|00000c00| 20 74 68 65 20 22 68 6f | 73 74 22 20 6e 61 6d 65 | the "ho|st" name|
|00000c10| 20 6d 61 74 63 68 65 73 | 20 74 68 61 74 20 6f 66 | matches| that of|
|00000c20| 20 61 20 6d 6f 75 6e 74 | 65 64 20 76 6f 6c 75 6d | a mount|ed volum|
|00000c30| 65 73 0d 09 09 09 09 0d | 09 09 09 09 69 66 20 28 |es......|....if (|
|00000c40| 76 42 75 66 66 65 72 5b | 30 5d 20 3e 20 31 29 0d |vBuffer[|0] > 1).|
|00000c50| 09 09 09 09 7b 0d 09 09 | 09 09 09 48 50 61 72 61 |....{...|...HPara|
|00000c60| 6d 42 6c 6f 63 6b 52 65 | 63 09 09 76 50 61 72 61 |mBlockRe|c..vPara|
|00000c70| 6d 42 6c 6f 63 6b 3b 0d | 09 09 09 09 09 0d 09 09 |mBlock;.|........|
|00000c80| 09 09 09 6d 65 6d 73 65 | 74 28 26 76 50 61 72 61 |...memse|t(&vPara|
|00000c90| 6d 42 6c 6f 63 6b 2c 20 | 30 2c 20 73 69 7a 65 6f |mBlock, |0, sizeo|
|00000ca0| 66 28 76 50 61 72 61 6d | 42 6c 6f 63 6b 29 29 3b |f(vParam|Block));|
|00000cb0| 0d 09 09 09 09 09 76 50 | 61 72 61 6d 42 6c 6f 63 |......vP|aramBloc|
|00000cc0| 6b 2e 76 6f 6c 75 6d 65 | 50 61 72 61 6d 2e 69 6f |k.volume|Param.io|
|00000cd0| 4e 61 6d 65 50 74 72 20 | 3d 20 28 75 6e 73 69 67 |NamePtr |= (unsig|
|00000ce0| 6e 65 64 20 63 68 61 72 | 20 2a 29 76 42 75 66 66 |ned char| *)vBuff|
|00000cf0| 65 72 3b 0d 09 09 09 09 | 09 76 50 61 72 61 6d 42 |er;.....|.vParamB|
|00000d00| 6c 6f 63 6b 2e 76 6f 6c | 75 6d 65 50 61 72 61 6d |lock.vol|umeParam|
|00000d10| 2e 69 6f 56 6f 6c 49 6e | 64 65 78 20 3d 20 2d 31 |.ioVolIn|dex = -1|
|00000d20| 3b 0d 09 09 09 09 09 69 | 66 20 28 21 50 42 48 47 |;......i|f (!PBHG|
|00000d30| 65 74 56 49 6e 66 6f 53 | 79 6e 63 28 26 76 50 61 |etVInfoS|ync(&vPa|
|00000d40| 72 61 6d 42 6c 6f 63 6b | 29 29 0d 09 09 09 09 09 |ramBlock|))......|
|00000d50| 7b 0d 09 09 09 09 09 09 | 2f 2f 20 69 74 20 64 69 |{.......|// it di|
|00000d60| 64 3b 20 77 65 20 77 69 | 6c 6c 20 61 73 73 75 6d |d; we wi|ll assum|
|00000d70| 65 20 74 68 65 20 22 68 | 6f 73 74 22 20 6e 61 6d |e the "h|ost" nam|
|00000d80| 65 20 69 73 20 61 20 6d | 69 73 74 61 6b 65 0d 09 |e is a m|istake..|
|00000d90| 09 09 09 09 09 0d 09 09 | 09 09 09 09 70 61 72 74 |........|....part|
|00000da0| 73 2d 3e 68 6f 73 74 20 | 3d 20 61 66 74 65 72 5f |s->host |= after_|
|00000db0| 61 63 63 65 73 73 20 2b | 20 31 3b 0d 09 09 09 09 |access +| 1;.....|
|00000dc0| 09 09 70 20 3d 20 70 61 | 72 74 73 2d 3e 68 6f 73 |..p = pa|rts->hos|
|00000dd0| 74 3b 0d 09 09 09 09 09 | 7d 0d 09 09 09 09 7d 0d |t;......|}.....}.|
|00000de0| 09 09 09 7d 0d 09 09 09 | 0d 09 09 09 69 66 20 28 |...}....|....if (|
|00000df0| 70 29 0d 09 09 09 7b 0d | 09 09 09 09 2a 70 20 3d |p)....{.|....*p =|
|00000e00| 20 30 3b 09 09 09 2f 2a | 20 54 65 72 6d 69 6e 61 | 0;.../*| Termina|
|00000e10| 74 65 20 68 6f 73 74 20 | 2a 2f 0d 09 09 09 09 70 |te host |*/.....p|
|00000e20| 61 72 74 73 2d 3e 61 62 | 73 6f 6c 75 74 65 20 3d |arts->ab|solute =|
|00000e30| 20 70 20 2b 20 31 3b 09 | 2f 2a 20 52 6f 6f 74 20 | p + 1;.|/* Root |
|00000e40| 68 61 73 20 62 65 65 6e | 20 66 6f 75 6e 64 20 2a |has been| found *|
|00000e50| 2f 0d 09 09 09 7d 0d 09 | 09 7d 0d 09 09 65 6c 73 |/....}..|.}...els|
|00000e60| 65 0d 09 09 7b 0d 09 09 | 09 70 61 72 74 73 2d 3e |e...{...|.parts->|
|00000e70| 61 62 73 6f 6c 75 74 65 | 20 3d 20 70 20 2b 20 31 |absolute| = p + 1|
|00000e80| 3b 09 2f 2a 20 52 6f 6f | 74 20 66 6f 75 6e 64 20 |;./* Roo|t found |
|00000e90| 62 75 74 20 6e 6f 20 68 | 6f 73 74 20 2a 2f 0d 09 |but no h|ost */..|
|00000ea0| 09 7d 0d 09 7d 0d 09 65 | 6c 73 65 0d 09 7b 0d 09 |.}..}..e|lse..{..|
|00000eb0| 09 70 61 72 74 73 2d 3e | 72 65 6c 61 74 69 76 65 |.parts->|relative|
|00000ec0| 20 3d 20 28 2a 61 66 74 | 65 72 5f 61 63 63 65 73 | = (*aft|er_acces|
|00000ed0| 73 29 20 3f 20 61 66 74 | 65 72 5f 61 63 63 65 73 |s) ? aft|er_acces|
|00000ee0| 73 20 3a 20 30 3b 09 2f | 2a 20 7a 65 72 6f 20 66 |s : 0;./|* zero f|
|00000ef0| 6f 72 20 22 22 20 2a 2f | 0d 09 7d 0d 0d 09 72 65 |or "" */|..}...re|
|00000f00| 74 75 72 6e 3b 0d 7d 09 | 09 09 09 09 09 09 09 2f |turn;.}.|......./|
|00000f10| 2a 73 63 61 6e 20 2a 2f | 0d 0d 2f 2a 20 20 50 61 |*scan */|../* Pa|
|00000f20| 72 73 65 20 61 20 4e 61 | 6d 65 20 72 65 6c 61 74 |rse a Na|me relat|
|00000f30| 69 76 65 20 74 6f 20 61 | 6e 6f 74 68 65 72 20 6e |ive to a|nother n|
|00000f40| 61 6d 65 0d 20 20 20 2a | 2a 20 20 20 2d 2d 2d 2d |ame. *|* ----|
|00000f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f70| 2d 0d 20 20 20 2a 2a 0d | 20 20 20 2a 2a 20 20 20 |-. **.| ** |
|00000f80| 54 68 69 73 20 72 65 74 | 75 72 6e 73 20 74 68 6f |This ret|urns tho|
|00000f90| 73 65 20 70 61 72 74 73 | 20 6f 66 20 61 20 6e 61 |se parts| of a na|
|00000fa0| 6d 65 20 77 68 69 63 68 | 20 61 72 65 20 67 69 76 |me which| are giv|
|00000fb0| 65 6e 20 28 61 6e 64 20 | 72 65 71 75 65 73 74 65 |en (and |requeste|
|00000fc0| 64 29 0d 20 20 20 2a 2a | 20 20 20 73 75 62 73 74 |d). **| subst|
|00000fd0| 69 74 75 74 69 6e 67 20 | 62 69 74 73 20 66 72 6f |ituting |bits fro|
|00000fe0| 6d 20 74 68 65 20 72 65 | 6c 61 74 65 64 20 6e 61 |m the re|lated na|
|00000ff0| 6d 65 20 77 68 65 72 65 | 20 6e 65 63 65 73 73 61 |me where| necessa|
|00001000| 72 79 2e 0d 20 20 20 2a | 2a 0d 20 20 20 2a 2a 20 |ry.. *|*. ** |
|00001010| 4f 6e 20 65 6e 74 72 79 | 2c 0d 20 20 20 2a 2a 20 |On entry|,. ** |
|00001020| 20 20 61 4e 61 6d 65 20 | 20 20 20 20 20 20 41 20 | aName | A |
|00001030| 66 69 6c 65 6e 61 6d 65 | 20 67 69 76 65 6e 0d 20 |filename| given. |
|00001040| 20 20 2a 2a 20 20 20 20 | 20 20 72 65 6c 61 74 65 | ** | relate|
|00001050| 64 4e 61 6d 65 20 20 20 | 20 20 41 20 6e 61 6d 65 |dName | A name|
|00001060| 20 72 65 6c 61 74 69 76 | 65 20 74 6f 20 77 68 69 | relativ|e to whi|
|00001070| 63 68 20 61 4e 61 6d 65 | 20 69 73 20 74 6f 20 62 |ch aName| is to b|
|00001080| 65 20 70 61 72 73 65 64 | 0d 20 20 20 2a 2a 20 20 |e parsed|. ** |
|00001090| 20 20 20 20 77 61 6e 74 | 65 64 20 20 20 20 20 20 | want|ed |
|000010a0| 20 20 20 20 41 20 6d 61 | 73 6b 20 66 6f 72 20 74 | A ma|sk for t|
|000010b0| 68 65 20 62 69 74 73 20 | 77 68 69 63 68 20 61 72 |he bits |which ar|
|000010c0| 65 20 77 61 6e 74 65 64 | 2e 0d 20 20 20 2a 2a 0d |e wanted|.. **.|
|000010d0| 20 20 20 2a 2a 20 4f 6e | 20 65 78 69 74 2c 0d 20 | ** On| exit,. |
|000010e0| 20 20 2a 2a 20 20 20 72 | 65 74 75 72 6e 73 20 20 | ** r|eturns |
|000010f0| 20 20 20 41 20 70 6f 69 | 6e 74 65 72 20 74 6f 20 | A poi|nter to |
|00001100| 61 20 6d 61 6c 6c 6f 63 | 27 64 20 73 74 72 69 6e |a malloc|'d strin|
|00001110| 67 20 77 68 69 63 68 20 | 4d 55 53 54 20 42 45 20 |g which |MUST BE |
|00001120| 46 52 45 45 44 0d 20 2a | 2f 0d 63 68 61 72 20 2a |FREED. *|/.char *|
|00001130| 48 54 50 61 72 73 65 28 | 63 6f 6e 73 74 20 63 68 |HTParse(|const ch|
|00001140| 61 72 20 2a 61 4e 61 6d | 65 2c 20 63 6f 6e 73 74 |ar *aNam|e, const|
|00001150| 20 63 68 61 72 20 2a 72 | 65 6c 61 74 65 64 4e 61 | char *r|elatedNa|
|00001160| 6d 65 2c 20 69 6e 74 20 | 77 61 6e 74 65 64 29 0d |me, int |wanted).|
|00001170| 7b 0d 09 63 68 61 72 20 | 2a 72 65 74 75 72 6e 5f |{..char |*return_|
|00001180| 76 61 6c 75 65 20 3d 20 | 30 3b 0d 09 63 68 61 72 |value = |0;..char|
|00001190| 20 2a 70 3b 0d 09 63 68 | 61 72 20 2a 61 63 63 65 | *p;..ch|ar *acce|
|000011a0| 73 73 3b 0d 09 73 74 72 | 75 63 74 20 73 74 72 75 |ss;..str|uct stru|
|000011b0| 63 74 5f 70 61 72 74 73 | 20 67 69 76 65 6e 2c 20 |ct_parts| given, |
|000011c0| 72 65 6c 61 74 65 64 3b | 0d 09 63 68 61 72 20 6e |related;|..char n|
|000011d0| 61 6d 65 5b 4d 41 58 5f | 55 52 4c 5f 53 54 52 49 |ame[MAX_|URL_STRI|
|000011e0| 4e 47 2b 31 5d 3b 0d 09 | 63 68 61 72 20 72 65 6c |NG+1];..|char rel|
|000011f0| 5b 4d 41 58 5f 55 52 4c | 5f 53 54 52 49 4e 47 2b |[MAX_URL|_STRING+|
|00001200| 31 5d 3b 0d 09 63 68 61 | 72 20 72 65 73 75 6c 74 |1];..cha|r result|
|00001210| 5b 32 2a 4d 41 58 5f 55 | 52 4c 5f 53 54 52 49 4e |[2*MAX_U|RL_STRIN|
|00001220| 47 2b 31 5d 3b 09 2f 2a | 20 4d 61 6b 65 20 74 68 |G+1];./*| Make th|
|00001230| 69 73 20 6c 6f 6e 67 65 | 72 20 74 6f 20 61 76 6f |is longe|r to avo|
|00001240| 69 64 20 6f 76 65 72 66 | 6c 6f 77 20 2a 2f 0d 0d |id overf|low */..|
|00001250| 09 2f 2a 20 4d 61 6b 65 | 20 77 6f 72 6b 69 6e 67 |./* Make| working|
|00001260| 20 63 6f 70 69 65 73 20 | 6f 66 20 69 6e 70 75 74 | copies |of input|
|00001270| 20 73 74 72 69 6e 67 73 | 20 74 6f 20 63 75 74 20 | strings| to cut |
|00001280| 75 70 3a 0d 09 20 2a 2f | 0d 09 47 54 52 5f 73 74 |up:.. */|..GTR_st|
|00001290| 72 6e 63 70 79 28 6e 61 | 6d 65 2c 20 61 4e 61 6d |rncpy(na|me, aNam|
|000012a0| 65 2c 20 4d 41 58 5f 55 | 52 4c 5f 53 54 52 49 4e |e, MAX_U|RL_STRIN|
|000012b0| 47 29 3b 0d 09 47 54 52 | 5f 73 74 72 6e 63 70 79 |G);..GTR|_strncpy|
|000012c0| 28 72 65 6c 2c 20 72 65 | 6c 61 74 65 64 4e 61 6d |(rel, re|latedNam|
|000012d0| 65 2c 20 4d 41 58 5f 55 | 52 4c 5f 53 54 52 49 4e |e, MAX_U|RL_STRIN|
|000012e0| 47 29 3b 0d 0d 09 73 63 | 61 6e 28 6e 61 6d 65 2c |G);...sc|an(name,|
|000012f0| 20 26 67 69 76 65 6e 29 | 3b 0d 09 73 63 61 6e 28 | &given)|;..scan(|
|00001300| 72 65 6c 2c 20 26 72 65 | 6c 61 74 65 64 29 3b 0d |rel, &re|lated);.|
|00001310| 0d 09 2f 2a 0d 09 09 46 | 6f 72 20 74 68 65 20 67 |../*...F|or the g|
|00001320| 69 76 65 6e 20 70 61 72 | 74 2c 20 69 66 20 77 65 |iven par|t, if we|
|00001330| 20 67 65 74 20 61 20 55 | 52 4c 20 77 68 69 63 68 | get a U|RL which|
|00001340| 20 63 6f 6e 74 61 69 6e | 73 20 61 20 70 72 6f 74 | contain|s a prot|
|00001350| 6f 63 6f 6c 20 61 6e 64 | 20 61 20 68 6f 73 74 2c |ocol and| a host,|
|00001360| 0d 09 09 62 75 74 20 6e | 6f 74 20 61 6e 20 61 62 |...but n|ot an ab|
|00001370| 73 6f 6c 75 74 65 2c 20 | 74 68 65 6e 20 69 74 20 |solute, |then it |
|00001380| 6c 6f 6f 6b 65 64 20 73 | 6f 6d 65 74 68 69 6e 67 |looked s|omething|
|00001390| 20 6c 69 6b 65 20 74 68 | 69 73 3a 0d 0d 09 09 68 | like th|is:....h|
|000013a0| 74 74 70 3a 2f 2f 77 77 | 77 2e 73 70 79 67 6c 61 |ttp://ww|w.spygla|
|000013b0| 73 73 2e 63 6f 6d 3a 34 | 30 34 30 0d 0d 09 09 57 |ss.com:4|040....W|
|000013c0| 65 20 6e 65 65 64 20 74 | 6f 20 61 73 73 75 6d 65 |e need t|o assume|
|000013d0| 20 74 68 61 74 20 74 68 | 65 20 73 6c 61 73 68 20 | that th|e slash |
|000013e0| 61 74 20 74 68 65 20 65 | 6e 64 20 73 68 6f 75 6c |at the e|nd shoul|
|000013f0| 64 20 62 65 20 74 68 65 | 72 65 2c 20 6f 72 20 77 |d be the|re, or w|
|00001400| 68 65 6e 20 74 68 69 73 | 0d 09 09 69 73 20 66 6f |hen this|...is fo|
|00001410| 75 6e 64 20 61 73 20 61 | 20 68 79 70 65 72 6c 69 |und as a| hyperli|
|00001420| 6e 6b 20 69 6e 20 61 20 | 64 6f 63 75 6d 65 6e 74 |nk in a |document|
|00001430| 2c 20 69 74 20 77 69 6c | 6c 20 73 74 65 61 6c 20 |, it wil|l steal |
|00001440| 74 68 65 20 61 62 73 6f | 6c 75 74 65 20 70 61 72 |the abso|lute par|
|00001450| 74 0d 09 09 66 72 6f 6d | 20 74 68 65 20 55 52 4c |t...from| the URL|
|00001460| 20 6f 66 20 74 68 65 20 | 64 6f 63 75 6d 65 6e 74 | of the |document|
|00001470| 20 69 74 73 65 6c 66 20 | 28 72 65 6c 61 74 65 64 | itself |(related|
|00001480| 29 2e 0d 09 2a 2f 0d 0d | 09 69 66 20 28 67 69 76 |)...*/..|.if (giv|
|00001490| 65 6e 2e 61 63 63 65 73 | 73 20 26 26 20 67 69 76 |en.acces|s && giv|
|000014a0| 65 6e 2e 68 6f 73 74 20 | 26 26 20 21 67 69 76 65 |en.host |&& !give|
|000014b0| 6e 2e 61 62 73 6f 6c 75 | 74 65 29 0d 09 7b 0d 09 |n.absolu|te)..{..|
|000014c0| 09 47 54 52 5f 73 74 72 | 6e 63 70 79 28 6e 61 6d |.GTR_str|ncpy(nam|
|000014d0| 65 2c 20 61 4e 61 6d 65 | 2c 20 4d 41 58 5f 55 52 |e, aName|, MAX_UR|
|000014e0| 4c 5f 53 54 52 49 4e 47 | 29 3b 0d 09 09 73 74 72 |L_STRING|);...str|
|000014f0| 63 61 74 28 6e 61 6d 65 | 2c 20 22 2f 22 29 3b 0d |cat(name|, "/");.|
|00001500| 09 09 73 63 61 6e 28 6e | 61 6d 65 2c 20 26 67 69 |..scan(n|ame, &gi|
|00001510| 76 65 6e 29 3b 0d 09 7d | 0d 0d 09 72 65 73 75 6c |ven);..}|...resul|
|00001520| 74 5b 30 5d 20 3d 20 30 | 3b 09 09 09 09 2f 2a 20 |t[0] = 0|;..../* |
|00001530| 43 6c 65 61 72 20 73 74 | 72 69 6e 67 20 20 2a 2f |Clear st|ring */|
|00001540| 0d 09 61 63 63 65 73 73 | 20 3d 20 67 69 76 65 6e |..access| = given|
|00001550| 2e 61 63 63 65 73 73 20 | 3f 20 67 69 76 65 6e 2e |.access |? given.|
|00001560| 61 63 63 65 73 73 20 3a | 20 72 65 6c 61 74 65 64 |access :| related|
|00001570| 2e 61 63 63 65 73 73 3b | 0d 09 69 66 20 28 77 61 |.access;|..if (wa|
|00001580| 6e 74 65 64 20 26 20 50 | 41 52 53 45 5f 41 43 43 |nted & P|ARSE_ACC|
|00001590| 45 53 53 29 0d 09 09 69 | 66 20 28 61 63 63 65 73 |ESS)...i|f (acces|
|000015a0| 73 29 0d 09 09 7b 0d 09 | 09 09 73 74 72 63 61 74 |s)...{..|..strcat|
|000015b0| 28 72 65 73 75 6c 74 2c | 20 61 63 63 65 73 73 29 |(result,| access)|
|000015c0| 3b 0d 09 09 09 69 66 20 | 28 77 61 6e 74 65 64 20 |;....if |(wanted |
|000015d0| 26 20 50 41 52 53 45 5f | 50 55 4e 43 54 55 41 54 |& PARSE_|PUNCTUAT|
|000015e0| 49 4f 4e 29 0d 09 09 09 | 09 73 74 72 63 61 74 28 |ION)....|.strcat(|
|000015f0| 72 65 73 75 6c 74 2c 20 | 22 3a 22 29 3b 0d 09 09 |result, |":");...|
|00001600| 7d 0d 0d 09 69 66 20 28 | 67 69 76 65 6e 2e 61 63 |}...if (|given.ac|
|00001610| 63 65 73 73 20 26 26 20 | 72 65 6c 61 74 65 64 2e |cess && |related.|
|00001620| 61 63 63 65 73 73 29 09 | 09 2f 2a 20 49 66 20 64 |access).|./* If d|
|00001630| 69 66 66 65 72 65 6e 74 | 2c 20 69 6e 68 65 72 69 |ifferent|, inheri|
|00001640| 74 20 6e 6f 74 68 69 6e | 67 2e 20 2a 2f 0d 09 09 |t nothin|g. */...|
|00001650| 69 66 20 28 73 74 72 63 | 6d 70 28 67 69 76 65 6e |if (strc|mp(given|
|00001660| 2e 61 63 63 65 73 73 2c | 20 72 65 6c 61 74 65 64 |.access,| related|
|00001670| 2e 61 63 63 65 73 73 29 | 20 21 3d 20 30 29 0d 09 |.access)| != 0)..|
|00001680| 09 7b 0d 09 09 09 72 65 | 6c 61 74 65 64 2e 68 6f |.{....re|lated.ho|
|00001690| 73 74 20 3d 20 30 3b 0d | 09 09 09 72 65 6c 61 74 |st = 0;.|...relat|
|000016a0| 65 64 2e 61 62 73 6f 6c | 75 74 65 20 3d 20 30 3b |ed.absol|ute = 0;|
|000016b0| 0d 09 09 09 72 65 6c 61 | 74 65 64 2e 72 65 6c 61 |....rela|ted.rela|
|000016c0| 74 69 76 65 20 3d 20 30 | 3b 0d 09 09 09 72 65 6c |tive = 0|;....rel|
|000016d0| 61 74 65 64 2e 61 6e 63 | 68 6f 72 20 3d 20 30 3b |ated.anc|hor = 0;|
|000016e0| 0d 09 09 7d 0d 0d 09 69 | 66 20 28 77 61 6e 74 65 |...}...i|f (wante|
|000016f0| 64 20 26 20 50 41 52 53 | 45 5f 48 4f 53 54 29 0d |d & PARS|E_HOST).|
|00001700| 09 09 69 66 20 28 67 69 | 76 65 6e 2e 68 6f 73 74 |..if (gi|ven.host|
|00001710| 20 7c 7c 20 72 65 6c 61 | 74 65 64 2e 68 6f 73 74 | || rela|ted.host|
|00001720| 29 0d 09 09 7b 0d 09 09 | 09 63 68 61 72 20 2a 74 |)...{...|.char *t|
|00001730| 61 69 6c 20 3d 20 72 65 | 73 75 6c 74 20 2b 20 73 |ail = re|sult + s|
|00001740| 74 72 6c 65 6e 28 72 65 | 73 75 6c 74 29 3b 0d 09 |trlen(re|sult);..|
|00001750| 09 09 69 66 20 28 77 61 | 6e 74 65 64 20 26 20 50 |..if (wa|nted & P|
|00001760| 41 52 53 45 5f 50 55 4e | 43 54 55 41 54 49 4f 4e |ARSE_PUN|CTUATION|
|00001770| 29 0d 09 09 09 09 73 74 | 72 63 61 74 28 72 65 73 |).....st|rcat(res|
|00001780| 75 6c 74 2c 20 22 2f 2f | 22 29 3b 0d 09 09 09 69 |ult, "//|");....i|
|00001790| 66 20 28 67 69 76 65 6e | 2e 68 6f 73 74 29 0d 09 |f (given|.host)..|
|000017a0| 09 09 7b 0d 09 09 09 09 | 73 74 72 63 61 74 28 72 |..{.....|strcat(r|
|000017b0| 65 73 75 6c 74 2c 20 67 | 69 76 65 6e 2e 68 6f 73 |esult, g|iven.hos|
|000017c0| 74 29 3b 0d 09 09 09 7d | 0d 09 09 09 65 6c 73 65 |t);....}|....else|
|000017d0| 0d 09 09 09 7b 0d 09 09 | 09 09 73 74 72 63 61 74 |....{...|..strcat|
|000017e0| 28 72 65 73 75 6c 74 2c | 20 72 65 6c 61 74 65 64 |(result,| related|
|000017f0| 2e 68 6f 73 74 29 3b 0d | 09 09 09 7d 0d 0d 09 09 |.host);.|...}....|
|00001800| 09 2f 2a 20 49 67 6e 6f | 72 65 20 64 65 66 61 75 |./* Igno|re defau|
|00001810| 6c 74 20 70 6f 72 74 20 | 6e 75 6d 62 65 72 73 2c |lt port |numbers,|
|00001820| 20 61 6e 64 20 74 72 61 | 69 6c 69 6e 67 20 64 6f | and tra|iling do|
|00001830| 74 73 20 6f 6e 20 46 51 | 44 4e 73 0d 09 09 09 20 |ts on FQ|DNs.... |
|00001840| 20 20 77 68 69 63 68 20 | 77 69 6c 6c 20 6f 6e 6c | which |will onl|
|00001850| 79 20 63 61 75 73 65 20 | 69 64 65 6e 74 69 63 61 |y cause |identica|
|00001860| 6c 20 61 64 72 65 65 73 | 73 65 73 20 74 6f 20 6c |l adrees|ses to l|
|00001870| 6f 6f 6b 20 64 69 66 66 | 65 72 65 6e 74 20 2a 2f |ook diff|erent */|
|00001880| 0d 09 09 09 7b 0d 09 09 | 09 09 63 68 61 72 20 2a |....{...|..char *|
|00001890| 70 3b 0d 09 09 09 09 70 | 20 3d 20 73 74 72 63 68 |p;.....p| = strch|
|000018a0| 72 28 74 61 69 6c 2c 20 | 27 3a 27 29 3b 0d 09 09 |r(tail, |':');...|
|000018b0| 09 09 69 66 20 28 70 20 | 26 26 20 61 63 63 65 73 |..if (p |&& acces|
|000018c0| 73 29 0d 09 09 09 09 7b | 09 09 09 09 2f 2a 20 50 |s).....{|..../* P|
|000018d0| 6f 72 74 20 73 70 65 63 | 69 66 69 65 64 20 2a 2f |ort spec|ified */|
|000018e0| 0d 09 09 09 09 09 69 66 | 20 28 20 20 20 28 20 20 |......if| ( ( |
|000018f0| 20 73 74 72 63 6d 70 28 | 61 63 63 65 73 73 2c 20 | strcmp(|access, |
|00001900| 22 68 74 74 70 22 29 20 | 3d 3d 20 30 0d 09 09 09 |"http") |== 0....|
|00001910| 09 09 09 09 26 26 20 73 | 74 72 63 6d 70 28 70 2c |....&& s|trcmp(p,|
|00001920| 20 22 3a 38 30 22 29 20 | 3d 3d 20 30 29 0d 09 09 | ":80") |== 0)...|
|00001930| 09 09 09 09 7c 7c 20 28 | 20 20 20 73 74 72 63 6d |....|| (| strcm|
|00001940| 70 28 61 63 63 65 73 73 | 2c 20 22 67 6f 70 68 65 |p(access|, "gophe|
|00001950| 72 22 29 20 3d 3d 20 30 | 0d 09 09 09 09 09 09 09 |r") == 0|........|
|00001960| 26 26 20 73 74 72 63 6d | 70 28 70 2c 20 22 3a 37 |&& strcm|p(p, ":7|
|00001970| 30 22 29 20 3d 3d 20 30 | 29 0d 23 69 66 64 65 66 |0") == 0|).#ifdef|
|00001980| 20 53 48 54 54 50 5f 41 | 43 43 45 53 53 5f 54 59 | SHTTP_A|CCESS_TY|
|00001990| 50 45 0d 09 09 09 09 09 | 09 7c 7c 20 28 20 20 20 |PE......|.|| ( |
|000019a0| 73 74 72 63 6d 70 28 61 | 63 63 65 73 73 2c 20 22 |strcmp(a|ccess, "|
|000019b0| 73 68 74 74 70 22 29 20 | 3d 3d 20 30 0d 09 09 09 |shttp") |== 0....|
|000019c0| 09 09 09 09 26 26 20 73 | 74 72 63 6d 70 28 70 2c |....&& s|trcmp(p,|
|000019d0| 20 22 3a 38 30 22 29 20 | 3d 3d 20 30 29 0d 23 65 | ":80") |== 0).#e|
|000019e0| 6e 64 69 66 0d 09 09 09 | 09 09 09 29 0d 09 09 09 |ndif....|...)....|
|000019f0| 09 09 09 2a 70 20 3d 20 | 28 63 68 61 72 29 20 30 |...*p = |(char) 0|
|00001a00| 3b 09 2f 2a 20 49 74 20 | 69 73 20 74 68 65 20 64 |;./* It |is the d|
|00001a10| 65 66 61 75 6c 74 3a 20 | 69 67 6e 6f 72 65 20 69 |efault: |ignore i|
|00001a20| 74 20 2a 2f 0d 09 09 09 | 09 7d 0d 09 09 09 09 69 |t */....|.}.....i|
|00001a30| 66 20 28 21 70 29 0d 09 | 09 09 09 09 70 20 3d 20 |f (!p)..|....p = |
|00001a40| 74 61 69 6c 20 2b 20 73 | 74 72 6c 65 6e 28 74 61 |tail + s|trlen(ta|
|00001a50| 69 6c 29 3b 09 2f 2a 20 | 41 66 74 65 72 20 68 6f |il);./* |After ho|
|00001a60| 73 74 6e 61 6d 65 20 2a | 2f 0d 09 09 09 09 69 66 |stname *|/.....if|
|00001a70| 20 28 73 74 72 6c 65 6e | 20 28 70 29 29 09 2f 2a | (strlen| (p))./*|
|00001a80| 20 2d 64 70 67 20 2a 2f | 0d 09 09 09 09 7b 0d 09 | -dpg */|.....{..|
|00001a90| 09 09 09 09 70 2d 2d 3b | 09 09 09 2f 2a 20 45 6e |....p--;|.../* En|
|00001aa0| 64 20 6f 66 20 68 6f 73 | 74 6e 61 6d 65 20 2a 2f |d of hos|tname */|
|00001ab0| 0d 09 09 09 09 09 69 66 | 20 28 2a 70 20 3d 3d 20 |......if| (*p == |
|00001ac0| 27 2e 27 29 0d 09 09 09 | 09 09 09 2a 70 20 3d 20 |'.')....|...*p = |
|00001ad0| 28 63 68 61 72 29 20 30 | 3b 09 2f 2a 20 63 68 6f |(char) 0|;./* cho|
|00001ae0| 70 20 66 69 6e 61 6c 20 | 2e 20 2a 2f 0d 09 09 09 |p final |. */....|
|00001af0| 09 7d 0d 09 09 09 7d 0d | 09 09 7d 0d 0d 09 69 66 |.}....}.|..}...if|
|00001b00| 20 28 67 69 76 65 6e 2e | 68 6f 73 74 20 26 26 20 | (given.|host && |
|00001b10| 72 65 6c 61 74 65 64 2e | 68 6f 73 74 29 09 09 2f |related.|host)../|
|00001b20| 2a 20 49 66 20 64 69 66 | 66 65 72 65 6e 74 20 68 |* If dif|ferent h|
|00001b30| 6f 73 74 73 2c 20 69 6e | 68 65 72 69 74 20 6e 6f |osts, in|herit no|
|00001b40| 20 70 61 74 68 2e 20 2a | 2f 0d 09 09 69 66 20 28 | path. *|/...if (|
|00001b50| 73 74 72 63 6d 70 28 67 | 69 76 65 6e 2e 68 6f 73 |strcmp(g|iven.hos|
|00001b60| 74 2c 20 72 65 6c 61 74 | 65 64 2e 68 6f 73 74 29 |t, relat|ed.host)|
|00001b70| 20 21 3d 20 30 29 0d 09 | 09 7b 0d 09 09 09 72 65 | != 0)..|.{....re|
|00001b80| 6c 61 74 65 64 2e 61 62 | 73 6f 6c 75 74 65 20 3d |lated.ab|solute =|
|00001b90| 20 30 3b 0d 09 09 09 72 | 65 6c 61 74 65 64 2e 72 | 0;....r|elated.r|
|00001ba0| 65 6c 61 74 69 76 65 20 | 3d 20 30 3b 0d 09 09 09 |elative |= 0;....|
|00001bb0| 72 65 6c 61 74 65 64 2e | 61 6e 63 68 6f 72 20 3d |related.|anchor =|
|00001bc0| 20 30 3b 0d 09 09 7d 0d | 0d 09 69 66 20 28 77 61 | 0;...}.|..if (wa|
|00001bd0| 6e 74 65 64 20 26 20 50 | 41 52 53 45 5f 50 41 54 |nted & P|ARSE_PAT|
|00001be0| 48 29 0d 09 7b 0d 09 09 | 69 66 20 28 67 69 76 65 |H)..{...|if (give|
|00001bf0| 6e 2e 61 62 73 6f 6c 75 | 74 65 29 0d 09 09 7b 09 |n.absolu|te)...{.|
|00001c00| 09 09 09 09 09 2f 2a 20 | 41 6c 6c 20 69 73 20 67 |...../* |All is g|
|00001c10| 69 76 65 6e 20 2a 2f 0d | 09 09 09 69 66 20 28 77 |iven */.|...if (w|
|00001c20| 61 6e 74 65 64 20 26 20 | 50 41 52 53 45 5f 50 55 |anted & |PARSE_PU|
|00001c30| 4e 43 54 55 41 54 49 4f | 4e 29 0d 09 09 09 09 73 |NCTUATIO|N).....s|
|00001c40| 74 72 63 61 74 28 72 65 | 73 75 6c 74 2c 20 22 2f |trcat(re|sult, "/|
|00001c50| 22 29 3b 0d 09 09 09 73 | 74 72 63 61 74 28 72 65 |");....s|trcat(re|
|00001c60| 73 75 6c 74 2c 20 67 69 | 76 65 6e 2e 61 62 73 6f |sult, gi|ven.abso|
|00001c70| 6c 75 74 65 29 3b 0d 09 | 09 7d 0d 09 09 65 6c 73 |lute);..|.}...els|
|00001c80| 65 20 69 66 20 28 72 65 | 6c 61 74 65 64 2e 61 62 |e if (re|lated.ab|
|00001c90| 73 6f 6c 75 74 65 29 0d | 09 09 7b 09 09 09 09 09 |solute).|..{.....|
|00001ca0| 09 2f 2a 20 41 64 6f 70 | 74 20 70 61 74 68 20 6e |./* Adop|t path n|
|00001cb0| 6f 74 20 6e 61 6d 65 20 | 2a 2f 0d 09 09 09 73 74 |ot name |*/....st|
|00001cc0| 72 63 61 74 28 72 65 73 | 75 6c 74 2c 20 22 2f 22 |rcat(res|ult, "/"|
|00001cd0| 29 3b 0d 09 09 09 73 74 | 72 63 61 74 28 72 65 73 |);....st|rcat(res|
|00001ce0| 75 6c 74 2c 20 72 65 6c | 61 74 65 64 2e 61 62 73 |ult, rel|ated.abs|
|00001cf0| 6f 6c 75 74 65 29 3b 0d | 09 09 09 69 66 20 28 67 |olute);.|...if (g|
|00001d00| 69 76 65 6e 2e 72 65 6c | 61 74 69 76 65 29 0d 09 |iven.rel|ative)..|
|00001d10| 09 09 7b 0d 09 09 09 09 | 70 20 3d 20 73 74 72 63 |..{.....|p = strc|
|00001d20| 68 72 28 72 65 73 75 6c | 74 2c 20 27 3f 27 29 3b |hr(resul|t, '?');|
|00001d30| 09 2f 2a 20 53 65 61 72 | 63 68 20 70 61 72 74 3f |./* Sear|ch part?|
|00001d40| 20 2a 2f 0d 09 09 09 09 | 69 66 20 28 21 70 29 0d | */.....|if (!p).|
|00001d50| 09 09 09 09 09 70 20 3d | 20 72 65 73 75 6c 74 20 |.....p =| result |
|00001d60| 2b 20 73 74 72 6c 65 6e | 28 72 65 73 75 6c 74 29 |+ strlen|(result)|
|00001d70| 20 2d 20 31 3b 0d 09 09 | 09 09 66 6f 72 20 28 3b | - 1;...|..for (;|
|00001d80| 20 2a 70 20 21 3d 20 27 | 2f 27 3b 20 70 2d 2d 29 | *p != '|/'; p--)|
|00001d90| 20 3b 09 2f 2a 20 6c 61 | 73 74 20 2f 20 2a 2f 0d | ;./* la|st / */.|
|00001da0| 09 09 09 09 70 5b 31 5d | 20 3d 20 30 3b 09 09 2f |....p[1]| = 0;../|
|00001db0| 2a 20 52 65 6d 6f 76 65 | 20 66 69 6c 65 6e 61 6d |* Remove| filenam|
|00001dc0| 65 20 2a 2f 0d 09 09 09 | 09 73 74 72 63 61 74 28 |e */....|.strcat(|
|00001dd0| 72 65 73 75 6c 74 2c 20 | 67 69 76 65 6e 2e 72 65 |result, |given.re|
|00001de0| 6c 61 74 69 76 65 29 3b | 09 09 2f 2a 20 41 64 64 |lative);|../* Add|
|00001df0| 20 67 69 76 65 6e 20 6f | 6e 65 20 2a 2f 0d 09 09 | given o|ne */...|
|00001e00| 09 09 48 54 53 69 6d 70 | 6c 69 66 79 28 72 65 73 |..HTSimp|lify(res|
|00001e10| 75 6c 74 29 3b 0d 09 09 | 09 7d 0d 09 09 7d 0d 09 |ult);...|.}...}..|
|00001e20| 09 65 6c 73 65 20 69 66 | 20 28 67 69 76 65 6e 2e |.else if| (given.|
|00001e30| 72 65 6c 61 74 69 76 65 | 29 0d 09 09 7b 0d 09 09 |relative|)...{...|
|00001e40| 09 2f 2a 20 54 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |./* The |followin|
|00001e50| 67 20 33 20 6c 69 6e 65 | 73 20 77 65 72 65 20 63 |g 3 line|s were c|
|00001e60| 6f 70 69 65 64 20 66 72 | 6f 6d 20 4e 43 53 41 20 |opied fr|om NCSA |
|00001e70| 4d 6f 73 61 69 63 20 66 | 6f 72 20 57 69 6e 64 6f |Mosaic f|or Windo|
|00001e80| 77 73 20 2a 2f 0d 09 09 | 09 69 66 20 28 28 77 61 |ws */...|.if ((wa|
|00001e90| 6e 74 65 64 20 26 20 50 | 41 52 53 45 5f 48 4f 53 |nted & P|ARSE_HOS|
|00001ea0| 54 29 20 26 26 20 28 67 | 69 76 65 6e 2e 68 6f 73 |T) && (g|iven.hos|
|00001eb0| 74 20 7c 7c 20 72 65 6c | 61 74 65 64 2e 68 6f 73 |t || rel|ated.hos|
|00001ec0| 74 29 20 26 26 20 28 77 | 61 6e 74 65 64 20 26 20 |t) && (w|anted & |
|00001ed0| 50 41 52 53 45 5f 50 55 | 4e 43 54 55 41 54 49 4f |PARSE_PU|NCTUATIO|
|00001ee0| 4e 29 29 0d 09 09 09 09 | 69 66 20 28 72 65 73 75 |N)).....|if (resu|
|00001ef0| 6c 74 5b 73 74 72 6c 65 | 6e 28 72 65 73 75 6c 74 |lt[strle|n(result|
|00001f00| 29 20 2d 20 31 5d 20 21 | 3d 20 27 2f 27 29 0d 09 |) - 1] !|= '/')..|
|00001f10| 09 09 09 09 73 74 72 63 | 61 74 28 72 65 73 75 6c |....strc|at(resul|
|00001f20| 74 2c 20 22 2f 22 29 3b | 0d 09 09 09 73 74 72 63 |t, "/");|....strc|
|00001f30| 61 74 28 72 65 73 75 6c | 74 2c 20 67 69 76 65 6e |at(resul|t, given|
|00001f40| 2e 72 65 6c 61 74 69 76 | 65 29 3b 09 09 2f 2a 20 |.relativ|e);../* |
|00001f50| 77 68 61 74 20 77 65 27 | 76 65 20 67 6f 74 20 2a |what we'|ve got *|
|00001f60| 2f 0d 09 09 7d 0d 09 09 | 65 6c 73 65 20 69 66 20 |/...}...|else if |
|00001f70| 28 72 65 6c 61 74 65 64 | 2e 72 65 6c 61 74 69 76 |(related|.relativ|
|00001f80| 65 29 0d 09 09 7b 0d 09 | 09 09 73 74 72 63 61 74 |e)...{..|..strcat|
|00001f90| 28 72 65 73 75 6c 74 2c | 20 72 65 6c 61 74 65 64 |(result,| related|
|00001fa0| 2e 72 65 6c 61 74 69 76 | 65 29 3b 0d 09 09 7d 0d |.relativ|e);...}.|
|00001fb0| 09 09 65 6c 73 65 0d 09 | 09 7b 09 09 09 09 09 09 |..else..|.{......|
|00001fc0| 2f 2a 20 4e 6f 20 69 6e | 68 65 72 69 74 61 6e 63 |/* No in|heritanc|
|00001fd0| 65 20 2a 2f 0d 09 09 09 | 69 66 20 28 21 73 74 72 |e */....|if (!str|
|00001fe0| 63 6d 70 28 72 65 73 75 | 6c 74 2c 20 22 6d 61 69 |cmp(resu|lt, "mai|
|00001ff0| 6c 74 6f 3a 22 29 29 09 | 09 2f 2f 20 6d 61 69 6c |lto:")).|.// mail|
|00002000| 74 6f 3a 0d 09 09 09 09 | 3b 0d 09 09 09 65 6c 73 |to:.....|;....els|
|00002010| 65 20 69 66 20 28 21 73 | 74 72 63 6d 70 28 72 65 |e if (!s|trcmp(re|
|00002020| 73 75 6c 74 2c 20 22 6e | 65 77 73 3a 22 29 29 0d |sult, "n|ews:")).|
|00002030| 09 09 09 09 3b 0d 09 09 | 09 65 6c 73 65 20 2f 2f |....;...|.else //|
|00002040| 20 70 72 6f 74 6f 63 6f | 6c 20 65 6e 64 73 20 77 | protoco|l ends w|
|00002050| 69 74 68 20 61 20 73 6c | 61 73 68 0d 09 09 09 09 |ith a sl|ash.....|
|00002060| 73 74 72 63 61 74 28 72 | 65 73 75 6c 74 2c 20 22 |strcat(r|esult, "|
|00002070| 2f 22 29 3b 0d 09 09 7d | 0d 09 7d 0d 0d 09 69 66 |/");...}|..}...if|
|00002080| 20 28 77 61 6e 74 65 64 | 20 26 20 50 41 52 53 45 | (wanted| & PARSE|
|00002090| 5f 41 4e 43 48 4f 52 29 | 0d 09 09 69 66 20 28 67 |_ANCHOR)|...if (g|
|000020a0| 69 76 65 6e 2e 61 6e 63 | 68 6f 72 20 7c 7c 20 72 |iven.anc|hor || r|
|000020b0| 65 6c 61 74 65 64 2e 61 | 6e 63 68 6f 72 29 0d 09 |elated.a|nchor)..|
|000020c0| 09 7b 0d 09 09 09 69 66 | 20 28 77 61 6e 74 65 64 |.{....if| (wanted|
|000020d0| 20 26 20 50 41 52 53 45 | 5f 50 55 4e 43 54 55 41 | & PARSE|_PUNCTUA|
|000020e0| 54 49 4f 4e 29 0d 09 09 | 09 09 73 74 72 63 61 74 |TION)...|..strcat|
|000020f0| 28 72 65 73 75 6c 74 2c | 20 22 23 22 29 3b 0d 09 |(result,| "#");..|
|00002100| 09 09 73 74 72 63 61 74 | 28 72 65 73 75 6c 74 2c |..strcat|(result,|
|00002110| 20 67 69 76 65 6e 2e 61 | 6e 63 68 6f 72 20 3f 20 | given.a|nchor ? |
|00002120| 67 69 76 65 6e 2e 61 6e | 63 68 6f 72 20 3a 20 72 |given.an|chor : r|
|00002130| 65 6c 61 74 65 64 2e 61 | 6e 63 68 6f 72 29 3b 0d |elated.a|nchor);.|
|00002140| 09 09 7d 0d 0d 09 2f 2a | 20 57 65 20 74 72 75 6e |..}.../*| We trun|
|00002150| 63 61 74 65 20 55 52 4c | 73 20 74 6f 20 31 30 32 |cate URL|s to 102|
|00002160| 34 20 62 79 74 65 73 20 | 69 66 20 74 68 65 79 27 |4 bytes |if they'|
|00002170| 72 65 20 74 6f 6f 20 6c | 6f 6e 67 2e 20 2a 2f 0d |re too l|ong. */.|
|00002180| 09 72 65 73 75 6c 74 5b | 4d 41 58 5f 55 52 4c 5f |.result[|MAX_URL_|
|00002190| 53 54 52 49 4e 47 5d 20 | 3d 20 27 5c 30 27 3b 0d |STRING] |= '\0';.|
|000021a0| 09 72 65 74 75 72 6e 5f | 76 61 6c 75 65 20 3d 20 |.return_|value = |
|000021b0| 47 54 52 5f 73 74 72 64 | 75 70 28 72 65 73 75 6c |GTR_strd|up(resul|
|000021c0| 74 29 3b 0d 0d 09 72 65 | 74 75 72 6e 20 72 65 74 |t);...re|turn ret|
|000021d0| 75 72 6e 5f 76 61 6c 75 | 65 3b 09 09 2f 2a 20 65 |urn_valu|e;../* e|
|000021e0| 78 61 63 74 6c 79 20 74 | 68 65 20 72 69 67 68 74 |xactly t|he right|
|000021f0| 20 6c 65 6e 67 74 68 20 | 2a 2f 0d 7d 0d 0d 0d 2f | length |*/.}.../|
|00002200| 2a 0d 20 20 20 2a 2a 20 | 20 20 41 73 20 73 74 72 |*. ** | As str|
|00002210| 63 70 79 28 29 20 62 75 | 74 20 67 75 61 72 61 6e |cpy() bu|t guaran|
|00002220| 74 65 65 64 20 74 6f 20 | 77 6f 72 6b 20 63 6f 72 |teed to |work cor|
|00002230| 72 65 63 74 6c 79 0d 20 | 20 20 2a 2a 20 20 20 77 |rectly. | ** w|
|00002240| 69 74 68 20 6f 76 65 72 | 6c 61 70 70 69 6e 67 20 |ith over|lapping |
|00002250| 70 61 72 61 6d 65 74 65 | 72 73 2e 20 20 20 20 41 |paramete|rs. A|
|00002260| 4c 20 37 20 46 65 62 20 | 31 39 39 34 0d 20 2a 2f |L 7 Feb |1994. */|
|00002270| 0d 50 52 49 56 41 54 45 | 20 76 6f 69 64 20 61 72 |.PRIVATE| void ar|
|00002280| 69 5f 73 74 72 63 70 79 | 28 63 68 61 72 20 2a 74 |i_strcpy|(char *t|
|00002290| 6f 2c 20 63 68 61 72 20 | 2a 66 72 6f 6d 29 0d 7b |o, char |*from).{|
|000022a0| 0d 09 63 68 61 72 20 2a | 74 6d 70 3b 0d 0d 09 69 |..char *|tmp;...i|
|000022b0| 66 20 28 21 74 6f 20 7c | 7c 20 21 66 72 6f 6d 29 |f (!to ||| !from)|
|000022c0| 0d 09 09 72 65 74 75 72 | 6e 3b 0d 0d 09 74 6d 70 |...retur|n;...tmp|
|000022d0| 20 3d 20 28 63 68 61 72 | 20 2a 29 20 47 54 52 5f | = (char| *) GTR_|
|000022e0| 4d 41 4c 4c 4f 43 28 73 | 74 72 6c 65 6e 28 66 72 |MALLOC(s|trlen(fr|
|000022f0| 6f 6d 29 20 2b 20 31 29 | 3b 0d 09 69 66 20 28 74 |om) + 1)|;..if (t|
|00002300| 6d 70 29 0d 09 7b 0d 09 | 09 73 74 72 63 70 79 28 |mp)..{..|.strcpy(|
|00002310| 74 6d 70 2c 20 66 72 6f | 6d 29 3b 0d 09 09 73 74 |tmp, fro|m);...st|
|00002320| 72 63 70 79 28 74 6f 2c | 20 74 6d 70 29 3b 0d 09 |rcpy(to,| tmp);..|
|00002330| 09 47 54 52 5f 46 52 45 | 45 28 74 6d 70 29 3b 0d |.GTR_FRE|E(tmp);.|
|00002340| 09 7d 0d 09 65 6c 73 65 | 0d 09 7b 0d 09 09 2f 2a |.}..else|..{.../*|
|00002350| 20 54 4f 44 4f 20 2a 2f | 0d 09 7d 0d 7d 0d 0d 2f | TODO */|..}.}../|
|00002360| 2a 20 20 20 20 20 20 20 | 20 20 20 53 69 6d 70 6c |* | Simpl|
|00002370| 69 66 79 20 61 20 66 69 | 6c 65 6e 61 6d 65 0d 20 |ify a fi|lename. |
|00002380| 20 20 2f 2f 20 20 20 20 | 20 20 20 2d 2d 2d 2d 2d | // | -----|
|00002390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 20 |--------|------. |
|000023a0| 20 20 2f 2f 0d 20 20 20 | 2f 2f 20 41 20 75 6e 69 | //. |// A uni|
|000023b0| 78 2d 73 74 79 6c 65 20 | 66 69 6c 65 20 69 73 20 |x-style |file is |
|000023c0| 61 6c 6c 6f 77 65 64 20 | 74 6f 20 63 6f 6e 74 61 |allowed |to conta|
|000023d0| 69 6e 20 74 68 65 20 73 | 65 71 65 75 6e 63 65 20 |in the s|eqeunce |
|000023e0| 78 78 78 2f 2e 2e 2f 20 | 77 68 69 63 68 20 6d 61 |xxx/../ |which ma|
|000023f0| 79 20 62 65 0d 20 20 20 | 2f 2f 20 72 65 70 6c 61 |y be. |// repla|
|00002400| 63 65 64 20 62 79 20 22 | 22 20 2c 20 61 6e 64 20 |ced by "|" , and |
|00002410| 74 68 65 20 73 65 71 65 | 75 6e 63 65 20 22 2f 2e |the seqe|unce "/.|
|00002420| 2f 22 20 77 68 69 63 68 | 20 6d 61 79 20 62 65 20 |/" which| may be |
|00002430| 72 65 70 6c 61 63 65 64 | 20 62 79 20 22 2f 22 2e |replaced| by "/".|
|00002440| 0d 20 20 20 2f 2f 20 53 | 69 6d 70 6c 69 66 69 63 |. // S|implific|
|00002450| 61 74 69 6f 6e 20 68 65 | 6c 70 73 20 75 73 20 72 |ation he|lps us r|
|00002460| 65 63 6f 67 6e 69 7a 65 | 20 64 75 70 6c 69 63 61 |ecognize| duplica|
|00002470| 74 65 20 66 69 6c 65 6e | 61 6d 65 73 2e 0d 20 20 |te filen|ames.. |
|00002480| 20 2f 2f 0d 20 20 20 2f | 2f 20 20 20 54 68 75 73 | //. /|/ Thus|
|00002490| 2c 20 20 20 2f 65 74 63 | 2f 6a 75 6e 6b 2f 2e 2e |, /etc|/junk/..|
|000024a0| 2f 66 72 65 64 20 20 20 | 62 65 63 6f 6d 65 73 20 |/fred |becomes |
|000024b0| 2f 65 74 63 2f 66 72 65 | 64 0d 20 20 20 2f 2f 20 |/etc/fre|d. // |
|000024c0| 20 20 20 20 20 20 2f 65 | 74 63 2f 6a 75 6e 6b 2f | /e|tc/junk/|
|000024d0| 2e 2f 66 72 65 64 20 20 | 20 20 62 65 63 6f 6d 65 |./fred | become|
|000024e0| 73 20 2f 65 74 63 2f 6a | 75 6e 6b 2f 66 72 65 64 |s /etc/j|unk/fred|
|000024f0| 0d 20 20 20 2f 2f 0d 20 | 20 20 2f 2f 20 20 20 20 |. //. | // |
|00002500| 20 20 62 75 74 20 77 65 | 20 73 68 6f 75 6c 64 20 | but we| should |
|00002510| 4e 4f 54 20 63 68 61 6e | 67 65 0d 20 20 20 2f 2f |NOT chan|ge. //|
|00002520| 20 20 20 20 20 20 20 68 | 74 74 70 3a 2f 2f 66 72 | h|ttp://fr|
|00002530| 65 64 2e 78 78 78 2e 65 | 64 75 2f 2e 2e 2f 2e 2e |ed.xxx.e|du/../..|
|00002540| 0d 20 20 20 2f 2f 0d 20 | 20 20 2f 2f 20 20 20 6f |. //. | // o|
|00002550| 72 20 20 2e 2e 2f 2e 2e | 2f 61 6c 62 65 72 74 2e |r ../..|/albert.|
|00002560| 68 74 6d 6c 0d 20 2a 2f | 0d 50 55 42 4c 49 43 20 |html. */|.PUBLIC |
|00002570| 76 6f 69 64 20 48 54 53 | 69 6d 70 6c 69 66 79 28 |void HTS|implify(|
|00002580| 63 68 61 72 20 2a 66 69 | 6c 65 6e 61 6d 65 29 0d |char *fi|lename).|
|00002590| 7b 0d 09 63 68 61 72 20 | 2a 70 20 3d 20 66 69 6c |{..char |*p = fil|
|000025a0| 65 6e 61 6d 65 3b 0d 09 | 63 68 61 72 20 2a 71 3b |ename;..|char *q;|
|000025b0| 0d 0d 09 69 66 20 28 70 | 29 0d 09 7b 0d 09 09 77 |...if (p|)..{...w|
|000025c0| 68 69 6c 65 20 28 2a 70 | 20 26 26 20 28 2a 70 20 |hile (*p| && (*p |
|000025d0| 3d 3d 20 27 2f 27 20 7c | 7c 20 2a 70 20 3d 3d 20 |== '/' ||| *p == |
|000025e0| 27 2e 27 29 29 09 2f 2a | 20 50 61 73 73 20 73 74 |'.'))./*| Pass st|
|000025f0| 61 72 74 69 6e 67 20 2f | 20 6f 72 20 2e 27 73 20 |arting /| or .'s |
|00002600| 2a 2f 0d 09 09 09 70 2b | 2b 3b 0d 09 09 77 68 69 |*/....p+|+;...whi|
|00002610| 6c 65 20 28 2a 70 29 0d | 09 09 7b 0d 09 09 09 69 |le (*p).|..{....i|
|00002620| 66 20 28 2a 70 20 3d 3d | 20 27 2f 27 29 0d 09 09 |f (*p ==| '/')...|
|00002630| 09 7b 0d 09 09 09 09 69 | 66 20 28 28 70 5b 31 5d |.{.....i|f ((p[1]|
|00002640| 20 3d 3d 20 27 2e 27 29 | 20 26 26 20 28 70 5b 32 | == '.')| && (p[2|
|00002650| 5d 20 3d 3d 20 27 2e 27 | 29 20 26 26 20 28 70 5b |] == '.'|) && (p[|
|00002660| 33 5d 20 3d 3d 20 27 2f | 27 20 7c 7c 20 21 70 5b |3] == '/|' || !p[|
|00002670| 33 5d 29 29 0d 09 09 09 | 09 7b 0d 09 09 09 09 09 |3]))....|.{......|
|00002680| 66 6f 72 20 28 71 20 3d | 20 70 20 2d 20 31 3b 20 |for (q =| p - 1; |
|00002690| 28 71 20 3e 3d 20 66 69 | 6c 65 6e 61 6d 65 29 20 |(q >= fi|lename) |
|000026a0| 26 26 20 28 2a 71 20 21 | 3d 20 27 2f 27 29 3b 20 |&& (*q !|= '/'); |
|000026b0| 71 2d 2d 29 20 3b 09 2f | 2a 20 70 72 65 76 20 73 |q--) ;./|* prev s|
|000026c0| 6c 61 73 68 20 2a 2f 0d | 09 09 09 09 09 69 66 20 |lash */.|.....if |
|000026d0| 28 71 5b 30 5d 20 3d 3d | 20 27 2f 27 20 26 26 20 |(q[0] ==| '/' && |
|000026e0| 30 20 21 3d 20 73 74 72 | 6e 63 6d 70 28 71 2c 20 |0 != str|ncmp(q, |
|000026f0| 22 2f 2e 2e 2f 22 2c 20 | 34 29 0d 09 09 09 09 09 |"/../", |4)......|
|00002700| 09 26 26 20 21 28 71 20 | 2d 20 31 20 3e 20 66 69 |.&& !(q |- 1 > fi|
|00002710| 6c 65 6e 61 6d 65 20 26 | 26 20 71 5b 2d 31 5d 20 |lename &|& q[-1] |
|00002720| 3d 3d 20 27 2f 27 29 29 | 0d 09 09 09 09 09 7b 0d |== '/'))|......{.|
|00002730| 09 09 09 09 09 09 61 72 | 69 5f 73 74 72 63 70 79 |......ar|i_strcpy|
|00002740| 28 71 2c 20 70 20 2b 20 | 33 29 3b 09 2f 2a 20 52 |(q, p + |3);./* R|
|00002750| 65 6d 6f 76 65 20 20 2f | 78 78 78 2f 2e 2e 20 20 |emove /|xxx/.. |
|00002760| 2a 2f 0d 09 09 09 09 09 | 09 69 66 20 28 21 2a 66 |*/......|.if (!*f|
|00002770| 69 6c 65 6e 61 6d 65 29 | 0d 09 09 09 09 09 09 09 |ilename)|........|
|00002780| 73 74 72 63 70 79 28 66 | 69 6c 65 6e 61 6d 65 2c |strcpy(f|ilename,|
|00002790| 20 22 2f 22 29 3b 0d 09 | 09 09 09 09 09 70 20 3d | "/");..|.....p =|
|000027a0| 20 71 20 2d 20 31 3b 09 | 2f 2a 20 53 74 61 72 74 | q - 1;.|/* Start|
|000027b0| 20 61 67 61 69 6e 20 77 | 69 74 68 20 70 72 65 76 | again w|ith prev|
|000027c0| 20 73 6c 61 73 68 20 20 | 2a 2f 0d 09 09 09 09 09 | slash |*/......|
|000027d0| 7d 0d 09 09 09 09 09 65 | 6c 73 65 0d 09 09 09 09 |}......e|lse.....|
|000027e0| 09 7b 0d 09 09 09 09 09 | 09 69 66 20 28 71 5b 30 |.{......|.if (q[0|
|000027f0| 5d 20 3d 3d 20 27 2f 27 | 20 26 26 20 28 71 20 2d |] == '/'| && (q -|
|00002800| 20 31 20 3e 20 66 69 6c | 65 6e 61 6d 65 20 26 26 | 1 > fil|ename &&|
|00002810| 20 71 5b 2d 31 5d 20 3d | 3d 20 27 2f 27 29 29 0d | q[-1] =|= '/')).|
|00002820| 09 09 09 09 09 09 7b 0d | 09 09 09 09 09 09 09 2f |......{.|......./|
|00002830| 2a 0d 09 09 09 09 09 09 | 09 09 54 68 65 20 73 6f |*.......|..The so|
|00002840| 2d 63 61 6c 6c 65 64 20 | 70 72 65 76 20 73 6c 61 |-called |prev sla|
|00002850| 73 68 20 66 6f 75 6e 64 | 20 69 73 20 61 63 74 75 |sh found| is actu|
|00002860| 61 6c 6c 79 20 74 68 65 | 20 6f 6e 65 20 62 65 66 |ally the| one bef|
|00002870| 6f 72 65 20 74 68 65 20 | 68 6f 73 74 6e 61 6d 65 |ore the |hostname|
|00002880| 21 0d 0d 09 09 09 09 09 | 09 09 09 54 68 65 20 55 |!.......|...The U|
|00002890| 52 4c 20 6c 6f 6f 6b 73 | 20 6c 69 6b 65 20 74 68 |RL looks| like th|
|000028a0| 69 73 3a 0d 0d 09 09 09 | 09 09 09 09 09 68 74 74 |is:.....|.....htt|
|000028b0| 70 3a 2f 2f 68 6f 73 74 | 2e 73 6f 6d 65 77 68 65 |p://host|.somewhe|
|000028c0| 72 65 2e 63 6f 6d 2f 2e | 2e 2f 70 61 74 68 0d 09 |re.com/.|./path..|
|000028d0| 09 09 09 09 09 09 09 20 | 20 20 20 20 20 5e 09 09 |....... | ^..|
|000028e0| 09 09 09 20 5e 0d 09 09 | 09 09 09 09 09 09 09 20 |... ^...|....... |
|000028f0| 20 7c 09 09 09 09 09 20 | 7c 0d 09 09 09 09 09 09 | |..... ||.......|
|00002900| 09 09 09 20 20 71 09 09 | 09 09 09 20 70 0d 0d 09 |... q..|... p...|
|00002910| 09 09 09 09 09 09 09 57 | 65 20 6e 6f 77 20 6e 65 |.......W|e now ne|
|00002920| 65 64 20 74 6f 20 66 69 | 78 20 74 68 65 20 55 52 |ed to fi|x the UR|
|00002930| 4c 20 74 6f 20 72 65 6d | 6f 76 65 20 74 68 65 20 |L to rem|ove the |
|00002940| 2e 2e 2f 0d 09 09 09 09 | 09 09 09 2a 2f 0d 09 09 |../.....|...*/...|
|00002950| 09 09 09 09 09 61 72 69 | 5f 73 74 72 63 70 79 28 |.....ari|_strcpy(|
|00002960| 70 2c 20 70 20 2b 20 33 | 29 3b 0d 09 09 09 09 09 |p, p + 3|);......|
|00002970| 09 7d 0d 09 09 09 09 09 | 7d 0d 09 09 09 09 7d 0d |.}......|}.....}.|
|00002980| 09 09 09 09 65 6c 73 65 | 20 69 66 20 28 28 70 5b |....else| if ((p[|
|00002990| 31 5d 20 3d 3d 20 27 2e | 27 29 20 26 26 20 28 70 |1] == '.|') && (p|
|000029a0| 5b 32 5d 20 3d 3d 20 27 | 2f 27 20 7c 7c 20 21 70 |[2] == '|/' || !p|
|000029b0| 5b 32 5d 29 29 0d 09 09 | 09 09 7b 0d 09 09 09 09 |[2]))...|..{.....|
|000029c0| 09 61 72 69 5f 73 74 72 | 63 70 79 28 70 2c 20 70 |.ari_str|cpy(p, p|
|000029d0| 20 2b 20 32 29 3b 09 2f | 2a 20 52 65 6d 6f 76 65 | + 2);./|* Remove|
|000029e0| 20 61 20 73 6c 61 73 68 | 20 61 6e 64 20 61 20 64 | a slash| and a d|
|000029f0| 6f 74 20 2a 2f 0d 09 09 | 09 09 7d 0d 23 69 66 20 |ot */...|..}.#if |
|00002a00| 30 0d 09 09 09 09 65 6c | 73 65 20 69 66 20 28 70 |0.....el|se if (p|
|00002a10| 5b 2d 31 5d 20 21 3d 20 | 27 3a 27 29 0d 09 09 09 |[-1] != |':')....|
|00002a20| 09 7b 0d 09 09 09 09 09 | 77 68 69 6c 65 20 28 70 |.{......|while (p|
|00002a30| 5b 31 5d 20 3d 3d 20 27 | 2f 27 29 0d 09 09 09 09 |[1] == '|/').....|
|00002a40| 09 7b 0d 09 09 09 09 09 | 09 61 72 69 5f 73 74 72 |.{......|.ari_str|
|00002a50| 63 70 79 28 70 2c 20 70 | 20 2b 20 31 29 3b 09 2f |cpy(p, p| + 1);./|
|00002a60| 2a 20 52 65 6d 6f 76 65 | 20 6d 75 6c 74 69 70 6c |* Remove| multipl|
|00002a70| 65 20 73 6c 61 73 68 65 | 73 20 2a 2f 0d 09 09 09 |e slashe|s */....|
|00002a80| 09 09 7d 0d 09 09 09 09 | 7d 0d 23 65 6e 64 69 66 |..}.....|}.#endif|
|00002a90| 0d 09 09 09 7d 0d 09 09 | 09 70 2b 2b 3b 0d 09 09 |....}...|.p++;...|
|00002aa0| 7d 09 09 09 09 09 09 2f | 2a 20 65 6e 64 20 77 68 |}....../|* end wh|
|00002ab0| 69 6c 65 20 28 2a 70 29 | 20 2a 2f 0d 09 7d 09 09 |ile (*p)| */..}..|
|00002ac0| 09 09 09 09 09 2f 2a 20 | 65 6e 64 20 69 66 20 28 |...../* |end if (|
|00002ad0| 70 29 20 2a 2f 0d 7d 0d | 0d 2f 2a 20 66 72 6f 6d |p) */.}.|./* from|
|00002ae0| 20 68 74 6d 6c 2e 63 20 | 2a 2f 0d 63 68 61 72 20 | html.c |*/.char |
|00002af0| 2a 78 5f 45 78 70 61 6e | 64 52 65 6c 61 74 69 76 |*x_Expan|dRelativ|
|00002b00| 65 41 6e 63 68 6f 72 28 | 63 6f 6e 73 74 20 63 68 |eAnchor(|const ch|
|00002b10| 61 72 20 2a 72 65 6c 2c | 20 63 6f 6e 73 74 20 63 |ar *rel,| const c|
|00002b20| 68 61 72 20 2a 62 61 73 | 65 29 0d 7b 0d 20 20 20 |har *bas|e).{. |
|00002b30| 20 63 68 61 72 20 2a 70 | 54 65 6d 70 20 3d 20 30 | char *p|Temp = 0|
|00002b40| 3b 0d 20 20 20 20 63 68 | 61 72 20 2a 73 74 72 69 |;. ch|ar *stri|
|00002b50| 70 70 65 64 3b 0d 20 20 | 20 20 63 68 61 72 20 2a |pped;. | char *|
|00002b60| 72 65 73 75 6c 74 20 3d | 20 4e 55 4c 4c 3b 0d 0d |result =| NULL;..|
|00002b70| 20 20 20 20 69 66 20 28 | 21 72 65 6c 29 0d 20 20 | if (|!rel). |
|00002b80| 20 20 7b 0d 20 20 20 20 | 20 20 20 20 72 65 6c 20 | {. | rel |
|00002b90| 3d 20 22 22 3b 0d 20 20 | 20 20 7d 0d 0d 20 20 20 |= "";. | }.. |
|00002ba0| 20 70 54 65 6d 70 20 3d | 20 47 54 52 5f 73 74 72 | pTemp =| GTR_str|
|00002bb0| 64 75 70 28 72 65 6c 29 | 3b 0d 20 20 20 20 0d 20 |dup(rel)|;. . |
|00002bc0| 20 20 20 69 66 28 21 62 | 61 73 65 29 0d 20 20 20 | if(!b|ase). |
|00002bd0| 20 09 72 65 74 75 72 6e | 20 70 54 65 6d 70 3b 0d | .return| pTemp;.|
|00002be0| 20 20 20 20 09 0d 20 20 | 20 20 73 74 72 69 70 70 | .. | stripp|
|00002bf0| 65 64 20 3d 20 48 54 53 | 74 72 69 70 28 70 54 65 |ed = HTS|trip(pTe|
|00002c00| 6d 70 29 3b 0d 20 20 20 | 20 72 65 73 75 6c 74 20 |mp);. | result |
|00002c10| 3d 20 48 54 50 61 72 73 | 65 28 73 74 72 69 70 70 |= HTPars|e(stripp|
|00002c20| 65 64 2c 20 62 61 73 65 | 2c 20 50 41 52 53 45 5f |ed, base|, PARSE_|
|00002c30| 50 55 4e 43 54 55 41 54 | 49 4f 4e 20 7c 20 50 41 |PUNCTUAT|ION | PA|
|00002c40| 52 53 45 5f 41 43 43 45 | 53 53 20 7c 20 50 41 52 |RSE_ACCE|SS | PAR|
|00002c50| 53 45 5f 48 4f 53 54 20 | 7c 20 50 41 52 53 45 5f |SE_HOST || PARSE_|
|00002c60| 50 41 54 48 20 7c 20 50 | 41 52 53 45 5f 41 4e 43 |PATH | P|ARSE_ANC|
|00002c70| 48 4f 52 29 3b 0d 20 20 | 20 20 47 54 52 5f 46 52 |HOR);. | GTR_FR|
|00002c80| 45 45 28 70 54 65 6d 70 | 29 3b 0d 20 20 20 20 72 |EE(pTemp|);. r|
|00002c90| 65 74 75 72 6e 20 72 65 | 73 75 6c 74 3b 0d 7d 0d |eturn re|sult;.}.|
|00002ca0| 0d 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002cb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002cc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002cd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ce0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002cf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d00| 00 00 01 00 00 00 01 76 | 00 00 00 76 00 00 00 52 |.......v|...v...R|
|00002d10| 39 40 00 08 91 41 00 38 | 7f e3 fb 78 38 81 00 40 |9@...A.8|...x8..@|
|00002d20| 38 a1 00 38 81 83 00 00 | 81 8c 00 1c 48 02 36 61 |8..8....|....H.6a|
|00002d30| 09 68 74 70 61 72 73 65 | 2e 63 02 00 00 00 50 61 |.htparse|.c....Pa|
|00002d40| 72 74 53 49 54 21 00 00 | 00 00 00 00 00 00 00 00 |rtSIT!..|........|
|00002d50| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|00002d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d70| 00 00 b0 56 8e 16 00 00 | 00 00 00 00 01 c8 00 40 |...V....|.......@|
|00002d80| 38 a0 00 08 81 83 00 00 | 81 8c 00 24 48 02 36 01 |8.......|...$H.6.|
|00002d90| 80 41 00 14 80 7e 00 b4 | 80 63 00 00 80 81 00 40 |.A...~..|.c.....@|
|00002da0| 80 a1 00 44 90 83 00 08 | 90 a3 00 0c 7f e3 fb 78 |...D....|.......x|
|00002db0| 38 81 00 38 38 a0 00 08 | 81 83 00 00 81 8c 00 24 |8..88...|.......$|
|00002dc0| 48 02 35 cd 80 41 00 14 | 80 de 00 b4 80 c6 00 00 |H.5..A..|........|
|00002dd0| 80 e1 00 38 81 01 00 3c | 90 e6 00 00 91 06 00 04 |...8...<|........|
|00002de0| 80 01 00 58 38 21 00 50 | 7c 08 03 a6 83 e1 ff fc |...X8!.P||.......|
|00002df0| 83 c1 ff f8 4e 80 00 20 | 38 63 ff 50 4b ff fc cc |....N.. |8c.PK...|
|00002e00| 00 00 00 04 00 01 00 01 | 00 00 00 48 00 09 4d 6f |........|...H..Mo|
|00002e10| 6e 61 63 6f 00 00 00 00 | 03 d4 06 e0 00 00 00 00 |naco....|........|
|00002e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 06 |........|........|
|00002e30| 00 04 00 50 00 20 03 63 | 04 2d 00 50 00 20 03 63 |...P. .c|.-.P. .c|
|00002e40| 04 2d af 8d 0f b8 00 00 | 00 44 00 00 00 44 00 00 |.-......|.D...D..|
|00002e50| 00 00 01 00 00 00 00 1e | 00 50 00 20 03 63 04 2d |........|.P. .c.-|
|00002e60| 00 50 00 20 03 63 04 2d | 00 00 00 00 00 00 00 00 |.P. .c.-|........|
|00002e70| 00 00 00 00 00 00 00 00 | 01 00 00 00 01 76 00 00 |........|.....v..|
|00002e80| 00 76 00 00 00 52 03 a7 | 6d 98 25 18 00 00 00 1c |.v...R..|m.%.....|
|00002e90| 00 52 00 01 4d 50 53 52 | 00 01 00 12 4d 57 42 42 |.R..MPSR|....MWBB|
|00002ea0| 00 00 00 2a 03 ed ff ff | 00 00 00 08 00 00 00 00 |...*....|........|
|00002eb0| 03 f0 ff ff 00 00 00 54 | 03 b3 ff 10 03 f0 ff ff |.......T|........|
|00002ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+